package com.mingdao.lhy.mapper.wish;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Mapper;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import com.github.pagehelper.Page;
import com.mingdao.lhy.pojo.HighSchool;
import com.mingdao.lhy.pojo.HighSchoolWish;
import com.mingdao.lhy.pojo.SpecialProjectAndArtSpecialty;

@Mapper
@Repository(value = "highSchoolMapper")
public interface HighSchoolMapper {

	/**
	 * 获取所有高中学校
	 * 
	 * @return
	 */
	List<HighSchool> list();

	/**
	 * 取第二批次学校（非随迁）
	 * 
	 * @param hjd
	 *            户籍地
	 * @return
	 */
	List<HighSchool> getBlockTwoNotFollowUp(String hjd);

	/**
	 * 取第二批次学校（随迁）
	 * 
	 * @param map
	 *            包含户籍地、就读地的Map
	 * @return
	 */
	List<HighSchool> getBlockTwoFollowUp(Map<String, String> map);

	/**
	 * 取第三批次学校（随迁）
	 * 
	 * @param map
	 *            包含户籍地、就读地的Map
	 * @return
	 */
	List<HighSchool> getBlockThreeFollowUp(Map<String, String> map);

	/**
	 * 取第三批次学校（非随迁）
	 * 
	 * @param hjd
	 * @return
	 */
	List<HighSchool> getBlockThreeNotFollowUp(String hjd);

	/**
	 * 取体一类体制学校
	 * 
	 * @return
	 */
	List<HighSchool> getOneClassOfSystems(@Param("xxdms") List<String> xxdms);

	/**
	 * 取所有招生高中学校
	 * 
	 * @param student
	 * @return
	 */
	List<HighSchool> getAllHighSchool();

	/**
	 * 取有特色项目的招生高中学校
	 * 
	 * @param student
	 * @return
	 */
	List<HighSchool> getHighSchoolBySpecialProject();

	/**
	 * 取有艺体专长的招生高中学校
	 * 
	 * @param student
	 * @return
	 */
	List<HighSchool> getHighSchoolByArtSpecialty();

	/**
	 * 取有特色项目和艺体专长的招生高中学校
	 * 
	 * @param student
	 * @return
	 */
	List<HighSchool> getHighSchoolBySpecialProjectAndArtSpecialty();

	/**
	 * 根据学校ID获取所对应专业列表
	 * 
	 * @param schoolId
	 * @return
	 */
	List<SpecialProjectAndArtSpecialty> getMajorBySchool(String schoolId);

	HighSchool getOne(String xxdm);

	int deleteByPrimaryKey(Long id);

	int insert(HighSchool record);

	int insertSelective(HighSchool record);

	HighSchoolWish selectByPrimaryKey(Long id);

	int updateByPrimaryKeySelective(HighSchool record);

	int updateByPrimaryKey(HighSchool record);

	Page<HighSchool> findByPage();

	HighSchool getHighSchoolByJdd(String jdd);
	
	int updatePasswordByPrimaryKey(HighSchool highSchool);

}